package test;

import static org.junit.Assert.assertEquals;

import java.util.Date;
import java.util.List;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import produto.Produto;
import produto.ProdutoRN;
import vendas.RegistroVendaBean;
import vendas.Venda;
import vendas.VendaRN;
import cliente.Cliente;
import cliente.ClienteRN;

public class VendasTeste extends TesteHeranca {
	public Cliente c1;
	public Cliente c2;
	public Cliente c3;
	public Produto p1;
	public Produto p2;
	public Produto p3;

	@Before
	public void setup() {
		c1 = new Cliente("11626730792", "luiz.costa@gmail.com",
				"Rua Vila Nova", new Date(), "cliente c1", 1500f);
		c2 = new Cliente("11626730792", "luiz.costa@gmail.com",
				"Rua Vila Nova", new Date(), "cliente c2", 1500f);
		c3 = new Cliente("11626730792", "luiz.costa@gmail.com",
				"Rua Vila Nova", new Date(), "cliente c3", 1500f);

		ClienteRN clienteRN = new ClienteRN();
		clienteRN.salvar(c1);
		clienteRN.salvar(c2);
		clienteRN.salvar(c3);

		p1 = new Produto(20, "Lapis", new Date(), 1.4f, "Lote");
		p2 = new Produto(25, "Caneta", new Date(), 1.4f, "UN");
		p3 = new Produto(25, "Borracha", new Date(), 1.4f, "Kg");

		ProdutoRN produtoRN = new ProdutoRN();
		produtoRN.salvar(p1);
		produtoRN.salvar(p2);
		produtoRN.salvar(p3);

	}

	@After
	public void limpaBanco() {

		VendaRN vendaRN = new VendaRN();
		List<Venda> vendas = vendaRN.listar();
		for (Venda venda : vendas) {
			vendaRN.excluir(venda);

		}

	}

	@Test
	public void registraTeste() {

		VendaRN vendaRN = new VendaRN();
		Venda venda1 = new Venda();
		venda1.setCliente(c1);
		venda1.setProduto(p1);
		venda1.setDatavenda(new Date());

		Venda venda2 = new Venda();
		venda2.setCliente(c2);
		venda2.setProduto(p2);
		venda2.setDatavenda(new Date());

		Venda venda3 = new Venda();
		venda3.setCliente(c3);
		venda3.setProduto(p3);
		venda3.setDatavenda(new Date());

		vendaRN.registraVenda(venda1);
		vendaRN.registraVenda(venda2);
		vendaRN.registraVenda(venda3);

		List<Venda> vendas = vendaRN.listar();
		assertEquals(3, vendas.size());

	}

	
	@Test
	public void testeValortotal() {
		RegistroVendaBean rg = new RegistroVendaBean();
		rg.getCarrinhoCompras().add(p1);
		rg.getCarrinhoCompras().add(p2);
		rg.getCarrinhoCompras().add(p3);
		
		rg.calculaTotal();
		assertEquals(4.2f, rg.getValorTotal(), 0);
	}

}
